"""
Streamlit 应用入口文件
运行 Streamlit 应用：streamlit run streamlit_app.py -- --api_server http://localhost:5555
"""

import argparse
import os
import sys

# 将项目根目录添加到 sys.path
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

# 禁用 Streamlit 遥测数据收集 - 更彻底的设置
os.environ["STREAMLIT_BROWSER_GATHER_USAGE_STATS"] = "false"
os.environ["STREAMLIT_TELEMETRY"] = "false"  # 额外设置
os.environ["STREAMLIT_ANALYTICS"] = "false"  # 额外设置

# 确保可以导入 streamlit_ui 模块
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from configs.global_config import global_config
from streamlit_ui.app import StreamlitApp

global_config.initialize()
print(global_config.raw_config)

# 配置API端点
API_BASE_URL = f"http://{global_config.get('server.host', 'localhost')}:{global_config.get('server.port', 5555)}"


def parse_args():
    """解析命令行参数"""
    parser = argparse.ArgumentParser(description="媒体信息处理服务 WebUI")
    parser.add_argument(
        "--api_server",
        type=str,
        default=API_BASE_URL,
        help="API 服务地址",
    )
    return parser.parse_args()


def main():
    """主函数"""
    # 解析命令行参数
    args = parse_args()

    # 从环境变量获取 API 服务地址（如果有）
    api_server = os.environ.get("API_SERVER", args.api_server)

    print(f"API 服务地址: {api_server}")

    # 创建并运行应用
    app = StreamlitApp(api_base_url=api_server)
    app.run()


if __name__ == "__main__":
    main()
